﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace SimpleExpression
{
	
    public interface ISelectCommandStrategy
    {
        void AddAttribute(AttributeExpression expression);

        void AddCondition(ConditionExpression expression);

        void AddLinkEntity(LinkEntityExpression expression);

        void AddDistinctClause(EntityExpression expression);

        void AddFromClause(EntityExpression expression);

        void AddWhereClause(FilterExpression expression);

        void BeginFilterExpression(FilterExpression expression);

        void EndFilterExpression(FilterExpression expression);

        void AddGroupByClause(GroupByExpression expression);

        void AddOrderClause(OrderExpression expression);

        void AddPagingClause(PagingExpression expression);

        object Command { get; }

        void WriteCommand();
    }
}
